/*
 *
 * Copyright (c) 2025, NexIoT. All Rights Reserved.
 *
 * @Description: 本文件由 gitee.com/NexIoT 开发并拥有版权，未经授权严禁擅自商用、复制或传播。
 * @Author: gitee.com/NexIoT
 * @Email: wo8335224@gmail.com
 * @Wechat: outlookFil
 *
 *
 */

package cn.universal.common.utils;

import java.io.File;
import org.apache.commons.lang3.StringUtils;

/** 文件类型工具类 @Author ruoyi */
public class FileTypeUtils {

  /**
   * 获取文件类型
   *
   * <p>例如: ruoyi.txt, 返回: txt
   *
   * @param file 文件名
   * @return 后缀（不含".")
   */
  public static String getFileType(File file) {
    if (null == file) {
      return StringUtils.EMPTY;
    }
    return getFileType(file.getName());
  }

  /**
   * 获取文件类型
   *
   * <p>例如: ruoyi.txt, 返回: txt
   *
   * @param fileName 文件名
   * @return 后缀（不含".")
   */
  public static String getFileType(String fileName) {
    int separatorIndex = fileName.lastIndexOf(".");
    if (separatorIndex < 0) {
      return "";
    }
    return fileName.substring(separatorIndex + 1).toLowerCase();
  }

  /**
   * 获取文件类型
   *
   * @param photoByte 文件字节码
   * @return 后缀（不含".")
   */
  public static String getFileExtendName(byte[] photoByte) {
    String strFileExtendName = "JPG";
    if ((photoByte[0] == 71)
        && (photoByte[1] == 73)
        && (photoByte[2] == 70)
        && (photoByte[3] == 56)
        && ((photoByte[4] == 55) || (photoByte[4] == 57))
        && (photoByte[5] == 97)) {
      strFileExtendName = "GIF";
    } else if ((photoByte[6] == 74)
        && (photoByte[7] == 70)
        && (photoByte[8] == 73)
        && (photoByte[9] == 70)) {
      strFileExtendName = "JPG";
    } else if ((photoByte[0] == 66) && (photoByte[1] == 77)) {
      strFileExtendName = "BMP";
    } else if ((photoByte[1] == 80) && (photoByte[2] == 78) && (photoByte[3] == 71)) {
      strFileExtendName = "PNG";
    }
    return strFileExtendName;
  }
}
